package entities 
{
	import collisions.Body;
	import flash.display.IGraphicsData;
	import flash.geom.Point;
	import graphics.IGraphic;
	import renderers.IRenderable;
	
	/**
	 * ...
	 * @author Gareth Williams
	 */
	public class Entity extends Body implements IRenderable
	{
		public var speed:Number = 5;
		public var rotation:Number = 0;
		public var isAlive:Boolean = true;
		public var graphic:IGraphic = null;
		public var viewCone:ViewCone = new ViewCone();
		protected var percentHealth:int = 100;
		public function Entity(x:Number = 0, y:Number = 0, radius:Number = 10) 
		{
			super(x, y);
			this.radius = radius;
		}
		public function destructor():void
		{
			//stub...
		}
		public function update():void
		{
			throw new UnimplementedAbstract("Entity::update");
		}
		
		/* INTERFACE renderers.IRenderable */
		
		public function getGraphic():IGraphic //required by renderer
		{
			return this.graphic;
		}
		
		public function doRender():Boolean 
		{
			return true;
		}
	}
}